package com.wcs.exam.controller.auth.req;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;

/**
 * <p>
 * Auth-订单信息表-请求参数
 * </p>
 *
 * @author wcs
 * @since 2024-07-06
 */
@Getter
@Setter
@Accessors(chain = true)
@Schema(description = "Auth-订单信息表-请求参数")
public class AuthOrderInfoPayReq implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @NotNull(message = "user.order.info.goods.type.not.null")
    @Schema(description = "商品类型(1:课程、2:考试)", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer goodsType;

    @NotNull(message = "user.order.info.goods.id.not.null")
    @Schema(description = "商品ID", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long goodsId;

    @NotNull(message = "user.order.info.pay.type.not.null")
    @Schema(description = "支付类型(1：微信扫码、2：微信H5、3：微信APP、4：小程序支付、5：微信JSAPI、6：支付宝扫码、7：支付宝H5、8：支付宝APP)", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer payType;

    @NotNull(message = "user.order.info.source.not.null")
    @Schema(description = "订单来源(1:PC端、2:H5、3:小程序、4:APP)", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer orderSource;

    @Schema(description = "用户终端IP")
    private String userClientIp;

    @Schema(description = "重定向跳转地址")
    private String redirectUrl;

    @Schema(description = "微信OpenId（在微信内置浏览器调用公众号支付、小程序支付等使用）")
    private String openId;

    @Schema(description = "授权Code（微信小程序使用，openId和code不能同时为空，优先使用openId）")
    private String code;

    @Schema(description = "客户备注")
    private String remarkCus;
}
